#include "painterarea.h"

PainterArea::PainterArea(QWidget *parent) : QWidget(parent)
{
    setPalette(QPalette(Qt::white)); //设置绘图区的背景颜色

    setAutoFillBackground(true); //Qt窗口是否需要绘制背景

    setMinimumSize(400, 400); //设置尺寸
}



void PainterArea::setShape(shape sh) //设置形状
{
    shp = sh;
    update();  //更新的实质就是在重新加载窗口区域
}


void PainterArea::setPen(QPen p)   //设置画笔
{
    pen = p;
    update();
}


void PainterArea::setBrush(QBrush brush) //设置画刷
{
    brsh = brush;
    update();
}


void PainterArea::paintEvent(QPaintEvent*) //重绘事件 , 系统自带的函数（斜体）
{
    QPainter p(this);
    p.setPen(pen);
    p.setBrush(brsh);

    QRect rect(55, 110, 290, 180); //设置了一个矩形
    switch(shp)
    {
        case Line:
            p.drawLine(rect.topLeft(), rect.bottomRight());  //设置直线为左上角到右下角
            break;
        case Rectangle:
            p.drawRect(rect);
            break;
    default:
            break;
    }

}


void PainterArea::setfillrule(Qt::FillRule rle) //填充规则
{
     fillrle = rle;
     update();
}
